#ifndef _DATA_PROC_H
#define _DATA_PROC_H


typedef struct _op_st
{
	int ele_num;
	int opcode;
	union
	{
		struct
		{
			 int reserved;
		}param_ret;
		
		struct 
		{
			 int direct;
			 int num_pulse;
		}param_move;
		
		struct 
		{
			int reserved;
		}param_stop;
	}un_param;
	
}op_st;


// typedef enum
// {
// 	DATA_PROC_RET_BACK,
// 	DATA_PROC_MOVE,
// 	DATA_PROC_STOP
// }ACT_CODE;

#define MASK_ELE_NUM 0x000000f0
#define MASK_ELE_OP 0x00000000f
#define GET_ELE_NUM(dataByte) (((dataByte)&MASK_ELE_NUM)>>4)
#define GET_ELE_OP(dataByte) ((dataByte)&MASK_ELE_OP)
#define INDEX_OPCODE 0
#define INDEX_DIR 1
#define LEN_NUM_PULSE 4


void parse_frame(unsigned char * buffIn, unsigned int len, op_st* opResult);

void act(op_st* opIn);

#endif
